// 导入db模块
const db = require('../config/db');

// 轮播图类
class Banner {
    // 添加轮播图（分类）
    add(src, href, banner_id, banner_title, banner_content) {
        return new Promise((resolve, reject) => {
            // `选择 字段 来自 轮播图数据表  如果字段等于传递过来的值 就返回符合条件执行结果`
            let sql = `select banner_title from db_banner where banner_title='${banner_title}'`
            db.query(sql)
                .then(
                    (rows) => {
                        if (rows.length == 0) {
                            // 表示没有这个轮播图
                            let sql2 = `insert into db_banner(src, href, banner_id, banner_title, banner_content) 
                            values('${src}','${href}','${banner_id}','${banner_title}','${banner_content}')`;
                            db.query(sql2).then(
                                () => {
                                    resolve({
                                        code: 200,
                                        msg: `添加轮播图成功。`
                                    })
                                },
                                () => {
                                    reject({
                                        code: -1,
                                        msg: `添加轮播图失败。`
                                    })
                                }
                            )

                        } else {
                            // 表示已经存在这个轮播图
                            resolve({
                                code: 1,
                                msg: `"${banner_title}"这个广告标题已经存在。`
                            })
                        }
                    },
                    (err) => {
                        reject({
                            code: -1,
                            msg: '查询轮播图失败。'
                        })
                    }
                )
        })
    }

    // 获取轮播图列表
    list() {
        return new Promise((resolve, reject) => {
            let sql = `select * from db_banner`;
            db.query(sql).then(
                (rows) => {
                    resolve({
                        code: 200,
                        msg: '获取轮播图列表成功。',
                        result: rows
                    })
                },
                (err) => {
                    reject({
                        code: -1,
                        msg: '获取轮播图列表失败。',
                        err
                    })
                }
            )
        })
    }

    // 删除轮播图
    remove(id) {
        return new Promise((resolve, reject) => {
            let sql = `select * from db_banner where id = '${id}'`;
            db.query(sql)
                .then(
                    (rows) => {
                        if (rows.length == 0) {
                            resolve({
                                code: 404,
                                msg: '该轮播图不存在。'
                            })
                        }
                        else {
                            // 删除轮播图
                            let sql2 = `delete from db_banner where id = '${id}'`;
                            db.query(sql2)
                                .then(
                                    (result) => {
                                        if(result.affectedRows === 1){
                                            resolve({
                                                code: 200,
                                                msg: '删除轮播图成功。',
                                            })
                                        }
                                        else {
                                            resolve({
                                                code: -1,
                                                msg: '删除轮播图失败。',
                                            })
                                        }
                                    },
                                    () => {
                                        reject({
                                            code: -1,
                                            msg: '删除轮播图失败。'
                                        })
                                    }
                                )
                        }
                    },
                    (err) => {
                        reject({
                            code: -1,
                            msg: '查询轮播图失败。',
                            err
                        })
                    }
                )
        })
    }

}

module.exports = new Banner();